假设有一个软件A,它默认会在/Applications目录下放一个A.app文件(文件夹),以及会在~/Library/Application Support/A目录下放其它的必要文件。
假设你要把软件装到你的移动硬盘/Volumes/MobileDisk上,可以这么干:
1 2 3 4 5 6 7 8 9 10 11 12 13
| # 在移动硬盘上创建应用程序目录。 mkdir /Volumes/MobileDisk/Applications # 把A.app移到移动硬盘上。 mv /Applications/A.app /Volumes/MobileDisk/Applications # 把A.app文件链接回内部硬盘。 ln -s /Volumes/MobileDisk/Applications/A.app /Applications
# 在移动硬盘上创建库目录和Application Support目录。 mkdir -p /Volumes/MobileDisk/Library/Application\ Support # 把A.app的Application Support目录移到移动硬盘上。 mv ~/Library/Application\ Support/A /Volumes/MobileDisk/Library/Application\ Support # 把A.app的Application Support/A目录链接回内部硬盘。 ln -s /Volumes/MobileDisk/Library/Application\ Support/A ~/Library/Application\ Support
|
或者在 Finder 中进行拖拽,直接在 应用 中将要选择迁移的应用拖拽到新的磁盘中,然后运行以下脚本创建软链接。这样应用就可以在启动台里面看见和搜索到了。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| import os import glob
def main(): source_path = "/Applications" target_path = "/Volumes/disk/Applications" apps = glob.glob(target_path+"/*.app") for app in apps: app_name = app.rsplit("/", 1)[1] source_app_path = "%s/%s" % (source_path, app_name) if not os.path.isdir(source_app_path) and not os.path.islink(source_app_path): mv_command = "ln -s \"%s\" \"%s\"" % (app, source_path) os.system(mv_command)
if __name__ == "__main__": main()
|